package com.firefighting.dao;

import java.util.HashMap;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.firefighting.entity.Contract;

public interface ContractMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Contract record);

    int insertSelective(Contract record);

    Contract selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Contract record);

    int updateByPrimaryKey(Contract record);
    
    /*liuxc 查询所有的合同*/
    List<HashMap<String, Object>> selectAllContract();
    //liuxc 根据企业ID查询所属企业的所有合同
	List<HashMap<String, Object>> getContractByEnterpriseId(Integer enterpriseId);
	//Hanjd 根据企业ID查询所属企业的所有合同
	List<Contract> getContractByEnterpriseId1(Integer enterpriseId);
	//liuxc 根据企业ID列表查询所属企业的所有合同
	List<HashMap<String, Object>> getContractByEnterpriseIdList(List<Integer> enterIdList);
	
	/** zhyan 根据合同id查询对应的合同信息、企业名称、业主名称、负责人名称 */
	@SuppressWarnings("rawtypes")
	List<HashMap> selectPEPMByContractIdList(@Param("list") List<Integer> list);
	
	/** zhyan 查询所有合同的id */
	List<Integer> selectAllContractId();
	
	/** zhyan 查询所有企业的详细信息 */
	@SuppressWarnings("rawtypes")
	List<HashMap> selectAllContractInfo();
	
	/** zhyan 查该省的所有合同 */
	@SuppressWarnings("rawtypes")
	List<HashMap> selectAllContractInfoWithProvince(@Param("province") String province);
	
	/** zhyan 查该省某市的所有合同 */
	@SuppressWarnings("rawtypes")
	List<HashMap> selectAllContractInfoWithProvinceAndCity(@Param("province") String province, @Param("city") String city);
	
	/** zhyan 根据项目负责人查询合同 */
	@SuppressWarnings("rawtypes")
	List<HashMap> selectAllContractInfoWithProjectLeaderAccount(@Param("projectLeaderAccount") String projectLeaderAccount);
	
	/** zhyan 根据企业查询该企业下的所有项目 */
	@SuppressWarnings("rawtypes")
	List<HashMap> selectAllContractInfoWithEnterprise(@Param("enterpriseId") int enterpriseId/*List<String> list*/);
	
	/** zhyan 包含项目负责人的合同信息 */
	@SuppressWarnings("rawtypes")
	HashMap queryContractHash(@Param("id") int id);
	//Hanjd 根据企业id查询主页合同信息
    List<HashMap<String, Object>> queryIndexContractHash(@Param("id") int id);
    //Hanjd 根据负责人id查询主页合同信息
    List<HashMap<String, Object>> queryIndexContractByLeader(@Param("id") String id);
    
    /** zhyan 根据省信息查询该省的合同id列表--消防总队 */
    List<Integer> selectContractIdListByProvince(@Param("province") String province);
    
    /** zhyan 根据省和市信息查询该市的合同id列表--消防支队 */
    List<Integer> selectContractIdListByProvinceAndCity(@Param("province") String province, @Param("city") String city);
    
    /** zhyan 查询项目负责人负责的所有项目的id列表 */
    List<Integer> selectContractIdByProjectLeaderAccount(@Param("projectLeaderAccount") String projectLeaderAccount);
    
    /** zhyan 根据企业id查询该企业的所有合同的id列表 */
    List<Integer> selectContractIdListByEnterpriseId(@Param("enterpriseId") int enterpriseId);
//Liuxc 根据合同ID查询合同信息
	HashMap<String, Object> getContractInfoById(@Param("contractId")int contractId);
    
 
}